With the expansion of the Internet and World-Wide-Web (or the Web), work and business environments have changed dramatically. Business has become more global and more work is moving to home offices and other locations remote from a centralized office. As a result, the need to be able to access information and resources from a remote computer system is becoming even more critical. Furthermore, for computing intensive work, a remote system is not just one computer or server, but rather a collection of computers either connected locally to a server or by a grid, such as the Terra Grid. The same is also true for data intensive work where data can be stored in distributed databases located on many computers at different locations.
There are several technologies for accessing a remote system and the Web, each has its own unique features and shortcomings. Specifically, these technologies include: 1) Web applications; 2) Remote shells; 3) Host-Guest systems.
Web applications are a technology that is generally platform independent and allows users to access information and requests for services of a remote server from a web browser. Users can connect to the web portal or server via a non-secured (http) or secured (https) connection from a web page. At the server, a web application configured as a servlet is running to listen for and provide such connections. This is often known as the client-server architecture. The web application can perform tasks that are simple, such as delivering data to the requesting user, or complicated ones that involve authentication, receiving input data from the user, sending a request to the server to run a different application, or receiving output data from the server and then delivering such data back to the user.
In this software architecture, users have a relatively thin web client that communicates directly to the web application servlet and not the server operating system (OS). Thus, the authentication process is performed by the servlet not the web server's own OS. In addition, users do not generally own accounts and directories on the server's operating system due to security constraints. However, the web application may provide web accounts and virtual directories for the end user but this is significantly different than having an account directly on the server itself.
Requests for resources on the server are done by the servlet. Furthermore, all computations are done on the server computer. In other words, all the web communications with the server are channeled through the servlet which provides the web data and protects the underlying server. Moreover, if the servlet crashes or network communication becomes unavailable, the user side application will immediately fail and/or the objects and pages for the web application will not be available. These types of failures are disturbing for the end users and illustrate that network connectivity is a weak link in web applications.
An example of this system is illustrated in FIG. 1. User A and B connect to the web portal and both are authenticated as registered users. User A supplies Data 1 and requests that Task 1 be executed, whereas, user B supplies Data 2 and requests Task 2. The servlet then communicates with the server OS and requests that those tasks to be performed with the supplied data. Once the tasks are completed, the server OS sends output 1 and 2 back to the servlet. At that point, the servlet assigns output 1 to user A and output 2 to user B, and then sends these outputs to the designated users.
Remote shell technology will now be discussed. The remote shell technology is generally used for servers running Unix, Linux, or similar computing environments that allow a remote shell to login to the OS. As illustrated in FIG. 2, users can open an X-window on their local desktop environments to connect directly to the server using the secure shell (SSH) protocol. In this case, the user has an account, owns directories on the server, and communicates directly with the server OS using command line commands. Users do not see the desktop environment of the server using SSH.
However, users can run an application that exports a display to the local computer from the server using the X11 forwarding protocol. The X11 protocol can “serve out” the screen, keyboard, mouse, etc. Unfortunately, the X11 protocol often has difficulties in exporting graphics from the server. In this technology, every event is executed on the server that is similar to web application technology. Stability can also be a problem because a weak link in this system is also the network connection. Because the network connection is used constantly, the entire X11 session fails when the network connection fails.
Next, a Host-Guest system will be discussed. This technology has more recently been available to personal computer (PC) users and is most often a single user application. A user can install a host application on a PC computer designated as the host and a guest application on a PC designated as the guest. Such a system has generally been restricted to running on the Window OS and is illustrated in FIG. 3.
Communication between the guest and host applications allows the host application to export the host desktop environment to the guest computer. The user at the guest computer can control the host computer via the exported host desktop environment including assessing data, running applications, etc. In a manner similar to the other technologies described, every event is done on the host computer. Note that the user does not communicate directly with the host OS but with the host-guest application running on the host computer. This system has the drawback that the host and guest applications are both installed before the system can be used. In addition, the host-guest system is highly dependent on communications network for the guest application to access the remote computer. When the network connection is unavailable, then the graphical images representing the guest acting on the host computer cannot be sent. Sending these graphical images or remote mirroring of the guest's actions on the host consumes a significant amount of communications bandwidth.
The discussion so far has just addressed the technologies for accessing a single remote computer, not a grid computing system. In order to access a grid computing system, a user has an account and login into a computer where the account is grid enabled and have resources allocated to the user on the grid. Technologies for accessing a computing grid currently do exist, such as Globus. Thus if a server is grid enabled, the server can be a gateway to the computing grid. Unfortunately, grid computing services do not generally provide remote access capability for a user who desires to access their local server that is connected to the computing grid.
In summary, one basic feature that is common in the existing technologies described above is that all computations are performed on the remote server being used and the completed data or screens showing the actions on the remote computer are exported back to the user computer for display. In such cases, graphic data uses a large bandwidth connection.
Another common issue surrounding these existing technologies is related to network failure. When the network becomes unavailable, the remote shell and host-guest applications are terminated without any warning. Except for the web applications, these other technologies are platform dependent. Even though the web applications are somewhat platform independent, web application users access the server they are interacting with through web application servlet and do not access the server operating environment directly.
Reference will now be made to the exemplary embodiments illustrated, and specific language will be used herein to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended.